The present invention relates generally to the field of mobile application software testing and more particularly to functional test automation of mobile applications interacting with native stock applications.
Mobile application development is a process by which application software is developed for handheld devices, such as personal digital assistants, enterprise digital assistants, mobile phones (e.g., smartphones), tablet computers, and the like. Mobile applications (e.g., “apps”) can be pre-installed on devices during manufacturing, downloaded by customers from various mobile software distribution platforms, or delivered as web applications using server-side or client-side processing to provide an application-like experience within a web browser.
An application developer typically tests an application before releasing the application to the end user. Testing may be used to find and fix errors in an application so that, once released, the end user has a positive user experience when using the application. Functional testing provides testers with the ability to validate expected navigation and behaviors of the application. Functional testing can monitor the behavior of the application to ensure the application displays the correct outputs, navigates correctly, and correctly responds to swipes, taps, inputs and other gestures, for example. In this manner, functional testing tests the inputs and outputs of the application from the ‘glass’ or screen perspective of the mobile device on which the application is run.
The ability to record and playback a user's interaction with a computer has the potential to benefit multiple parties, including businesses, users, software developers, testers, and computer support personnel. For example, software developers can use the ability to record user actions to help generate test cases for software under development, and testers can use record and playback tools to build tests to perform automated regression testing. A challenge in record-and-playback testing systems can occur with accurately recording an app's execution in order to support automatic replay.